package me.twoday.library.mine.common;

import me.twoday.library.mine.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Handler;

/**
 * 초기화면을 띄워주기위한 클래스 
 *
 * @author 김학성
 * @since 2012. 5. 5.
 */
public class LauncherUtil 
{
	private static final int DISPLAY_TIME = 3000;
	private static Handler handler;
	private static Intent intent;
	private static boolean isLayoutDefault = true;
	private static int layoutResource;
	
	/**
	 * 특정 시간동안 화면을 보여주고 다음 엑티비티로 이동한다.
	 * 
	 * @param activity 호출하는쪽 액티비티 
	 * @param cls 호출되는 쪽의 클래스 
	 */
	public static final void go(final Activity activity, final Class<?> cls)
	{
		// 리소스가 정의되지 않았을때(0), 기본적인 sopt intro 화면을 보여준다. 
		if(isLayoutDefault == true)
		{
			activity.setContentView(R.layout.default_intro_activity);
		}
		// 정의가  되었을 경우 받은 layout으로 초기화 시켜준다. 
		else
		{
			activity.setContentView(layoutResource);
		}
		
		handler = new Handler();
		handler.postDelayed(new Runnable() 
		{
			@Override
			public void run() 
			{
				intent = new Intent(activity, cls);
				activity.startActivity(intent);
				activity.overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
				activity.finish();
			}
		}, DISPLAY_TIME);
	}
	
	/**
	 * 특정 시간동안 화면을 보여주고 다음 엑티비티로 이동한다.
	 * 
	 * @param 인트로 화면에 보여질 layout을 정의합니다. 
	 * @param activity 호출하는쪽 액티비티 
	 * @param cls 호출되는 쪽의 클래스 
	 */
	public static final void go(int _layoutResource, final Activity activity, final Class<?> cls)
	{
		isLayoutDefault = false;
		layoutResource = _layoutResource;
		go(activity, cls);
	}
}